﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace SistemaGO_Library.Entidades.Proposta
{
    class CadastroProposta
    {
        private IRepositorioProposta propostas;

        public CadastroProposta(IRepositorioProposta repPro) {
            this.propostas = repPro;
        }

        public void inserirProposta(Proposta pro) {
            if (pro != null && !propostas.existeProposta(pro.Proposta_cod)) {
                propostas.inserirProposta(pro);
            } else {
                throw new Exception("Proposta Já Existente ou Nula");
            }
        }

        public Proposta buscarProposta(int cod) {
            Proposta pro = new Proposta();
            pro = null;
            if (propostas.existeProposta(cod)) {
                pro = propostas.buscarProposta(cod);
            } else {
                throw new Exception("Proposta Não Encontrada");
            }
            return pro;
        }

        public void alterarProposta(int cod, Proposta novaProposta) {
            if (propostas.existeProposta(cod)) {
                propostas.alterarProposta(cod, novaProposta);
            } else {
                throw new Exception("Erro ao alterar proposta");
            }
        }

        public void excluirProposta(int cod) {
            if (cod < 0) {
                throw new Exception("Erro ao excluir proposta");
            } else {
                propostas.excluirProposta(cod);
            }
        }

        public ArrayList propostasDoPedido(int pedido_codigo) {
            return propostas.propostasDoPedido(pedido_codigo);
        }

        public void mudarSituacao(string newSituacao, int cod) {
            propostas.mudarSituacao(newSituacao, cod);
        }

        public void aceitarProposta(int codigo_proposta, int codigo_pedido) {
            propostas.aceitarProposta(codigo_proposta, codigo_pedido);
        }
    }
}
